#pragma once

#include "ShaderPairLibrary.h"
#include "TextureLibrary.h"
#include "ShapeLibrary.h"

#include "BasicMath.h"

class Model
{
public:
	// the id of the shader to use in a shader library wh2n
	// rendering this model
	int ShaderID;
	
	// the id of the texture in a texture library to use 
	// when rendering this model
	int TextureID;

	// the id of the shape in a shape library to use when 
	// rendering this model.
	int ShapeID;

	// renders the model.
	void Render(
		ID3D11DeviceContext1* Direct3DContext, 
		ModelViewProjectionConstantBuffer ModelViewProjectionBuffer,
		ID3D11Buffer* constantBuffer,
		ID3D11SamplerState* textureSampler,

		float4x4 ModelTransformation,

		ShaderPairLibrary* shaderPairLibray,
		TextureLibrary* textureLibrary,
		ShapeLibrary* shapeLibrary);

};